﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Entities;
using Microsoft.ApplicationBlocks.Data;
using System.Data;


namespace DAL
{
    public class PaisDAL
    {
        public static string strConexion = System.Configuration.ConfigurationManager.ConnectionStrings["ConexionBaseDesarrollo"].ConnectionString;

        public static long Nuevo(Pais parPais)
        {
            long intRetorno = 0;
            intRetorno = long.Parse(SqlHelper.ExecuteScalar(strConexion, "spPaisNuevo", parPais.NombrePais).ToString());
            return intRetorno;
        }

        public static void Modificar(Pais parPais)
        {
            SqlHelper.ExecuteNonQuery(strConexion, "spPaisModificar", parPais.IDPais, parPais.NombrePais);
        }

        public static void Eliminar(long parIDPais)
        {
            SqlHelper.ExecuteNonQuery(strConexion, "spPaisEliminar", parIDPais);
        }

        public static Pais BuscarUno(long parIDPais)
        {
            try
            {
                DataTable dt = new DataTable();
                //Busca el objeto por el ID, si lo encuentra lo devuelve
                dt = SqlHelper.ExecuteDataset(strConexion, "spPaisBuscarUno", parIDPais).Tables[0];
                if (dt.Rows.Count > 0)
                {
                    Pais oPais = new Pais();
                    DataRow dr = dt.Rows[0];
                    oPais.IDPais = long.Parse(dr["IDPais"].ToString());
                    oPais.NombrePais = dr["NombrePais"].ToString();
                    return oPais;
                }
                //sino retorna Null
                else
                {
                    return null;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public static List<Pais> BuscarVarios(string parNombrePais)
        {
            try
            {
                List<Pais> ListaPais = new List<Pais>();
                DataTable dt = new DataTable();
                //Busco el objeto por sus propiedades, si encontro, retorna el objeto Negocio
                dt = SqlHelper.ExecuteDataset(strConexion, "spPaisBuscarVarios", parNombrePais).Tables[0];
                if (dt.Rows.Count > 0)
                {
                    //Va cargando los cargos uno a uno.
                    foreach (DataRow dr in dt.Rows)
                    {
                        Pais oPais = new Pais();
                        oPais.IDPais = long.Parse(dr["IDPais"].ToString());
                        oPais.NombrePais = dr["NombrePais"].ToString();
                        ListaPais.Add(oPais);
                    }
                    return ListaPais;
                }
                //sino retorna Null
                else
                {
                    return null;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public static List<Pais> BuscarTodos()
        {
            try
            {
                List<Pais> ListaPais = new List<Pais>();
                DataTable dt = new DataTable();
                //Busco el objeto por sus propiedades, si encontro, retorna el objeto Negocio
                dt = SqlHelper.ExecuteDataset(strConexion, System.Data.CommandType.StoredProcedure, "spPaisBuscarTodos").Tables[0];
                if (dt.Rows.Count > 0)
                {
                    //Va cargando los cargos uno a uno.
                    foreach (DataRow dr in dt.Rows)
                    {
                        Pais oPais = new Pais();
                        oPais.IDPais = long.Parse(dr["IDPais"].ToString());
                        oPais.NombrePais = dr["NombrePais"].ToString();
                        ListaPais.Add(oPais);
                    }
                    return ListaPais;
                }
                //sino retorna Null
                else
                {
                    return null;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
}
